Symbologies, such as matrix symbologies and two-dimensional barcodes, have become a widely accepted tool for sharing small amounts of data, and for tracking objects that are marked with the symbology. Examples of symbologies include Universal Product Codes (UPC), data matrix codes, Quick Response (QR) codes, Aztec codes, Maxi codes, and the like.
A symbology may be scanned and read by a wide variety of devices, including, but not limited to, cellular telephones, digital cameras, smartphones, personal digital assistants, tablet devices, electronic readers, personal computers and portable satellite navigation devices. The generation of the various symbologies are governed by established international standards, e.g. ISO/IEC 18004:2006 covering QR codes.
QR codes have become a widely accepted method for printing mechanically readable encoded data. The codes can be used in official documents such as certificates and diplomas to verify the authenticity. For example, assigning a unique QR code to an official document and tying authentication data to the code allows for the validation of the document.
The barcodes are typically printed as an independent entity in the page, separated from other objects such as pictures, text, graphics, and logos. However, it is sometimes desirable to have QR codes embedded in other objects, such as logos and seals, to make the document aesthetically more appealing. Color QR barcodes have been designed to mimic simple logo type graphics, which can be found in many websites. Typically, graphical information is combined with the barcode in a “naive approach”.
There are several disadvantages for the naive approach. First, it can not ensure the symbol contrast and hence the readability of the resulting barcode. Second, the method cannot ensure sufficient image quality, particularly in color saturation. Third, it may result in “brightness reversal” where a brighter color becomes much darker after barcode embedding and vice versa. Therefore a need exists for a method to combine a logo with a barcode that avoids these disadvantages.